<?php
namespace App\DBs;

use Illuminate\Support\Facades\DB;

class BaseDB
{
    /**
     * 基本DB
     */

    /**
     * JSON转化为数组
     */
    public function jsonToArr($str) {
        if (is_string($str)) $str = json_decode($str);
        $arr = array();
        foreach($str as $k=>$v) {
            if(is_object($v) || is_array($v))
                $arr[$k] = $this->jsonToArr($v);
            else
                $arr[$k] = $v;
        }
        return $arr;
    }

    /**
     * 文件大小分级
     */
    public function getSizeLevel($size)
    {
        if ($size>1024 && $size<=1024*1024) {
            return round($size/1024,2) . 'KB';
        }
        else if ($size>1024*1024 && $size<=1024*1024*1024) {
            return round($size/1024/1024,2) . 'MB';
        }
        else if ($size>1024*1024*1024) {
            return round($size/1024/1024/1024,2) . 'GB';
        }
        else {
            return $size . 'B';
        }
    }

    /**
     * 生成随机字符串，默认数字字母混合
     * $numeric==0纯数字
     */
    public static function getRandStr($length=6,$numeric=1) {
        if(!$numeric) {
            //纯数字
            $str = sprintf('%0'.$length.'d', mt_rand(0, pow(10, $length) - 1));
        } else {
            //数字、字母组合
            $str = '';
            $chars = 'ABCDEFGHJKLMNPQRSTUVWXYZ23456789abcdefghjkmnpqrstuvwxyz';
            $max = strlen($chars) - 1;
            for($i = 0; $i < $length; $i++) {
                $str .= $chars[mt_rand(0, $max)];
            }
        }
        return $str;
    }

//    public function setAdd($uid,$vid)
//    {
//        //开启事务
//        DB::beginTransaction();
//        try {
//            //提交事务
//            DB::commit();
//            return array('code'=>'0', 'msg'=>'操作成功');
//        } catch (\Exception $e) {
//            //事务回滚
//            DB::rollBack();
//            return array('code'=>'-1', 'msg'=>'操作失败：'.$e);
//        }
//    }
}